import request from '@/utils/request'

// 查询设备台账列表
export function listSbtz(query) {
  return request({
    url: '/sbtz/sbtz/list',
    method: 'get',
    params: query
  })
}

export function listParentId(query) {
  return request({
    url: '/sbtz/sbtz/list',
    method: 'get',
    params: query
  })
} 

export function exportChain(query) {
  return request({
    url: '/sbtz/sbtz/exportChain',
    method: 'get',
    params: query
  })
} 

// 查询设备台账详细
export function getSbtz(id) {
  return request({
    url: '/sbtz/sbtz/' + id,
    method: 'get'
  })
}

export function getDeptUsage(id) {
  return request({
    url: '/sbtz/sbtz/dept/usage/' + id,
    method: 'get'
  })
} 

// 新增设备台账
export function addSbtz(data) {
  return request({
    url: '/sbtz/sbtz',
    method: 'post',
    data: data
  })
}

// 修改设备台账
export function updateSbtz(data) {
  return request({
    url: '/sbtz/sbtz',
    method: 'put',
    data: data
  })
}

// 删除设备台账
export function delSbtz(id) {
  return request({
    url: '/sbtz/sbtz/' + id,
    method: 'delete'
  })
}
 
 

/**
 * 级联懒加载：读取某个父节点的直接子节点（用于 Cascader）
 * @param {number|string} parentId 父节点ID（根=0）
 */
export function cascaderChildren(parentId = 0) {
  return request({
    url: '/sbtz/sbtz/picker/children',
    method: 'get',
    params: { parentId }
  })
}


export function getLeafNodePath(id) {
  return request({
    url: `/sbtz/sbtz/getTreePath/${id}`,
    method: 'get'
  })
}


/**
 * 新增一个节点（在哪一层由 parentId 决定：子项/同级由前端传）
 * data: { parentId, nodeType, name, code?, remark?, orderNum? }
 */
export function createNode(data) {
  return request({
    url: '/sbtz/sbtz',
    method: 'post',
    data
  })
}

/**
 * 提交前校验（父子类型是否合法、编码是否重复等）
 * params: { parentId, nodeType, code? }
 */
export function validateNode(params) {
  return request({
    url: '/sbtz/sbtz/validate',
    method: 'get',
    params
  })
}

/**
 * 路径向导：一次创建多层节点链
 * data: { rootParentId?, allowReuse?, chain:[{nodeType,name,code?}, ...] }
 */
export function bulkCreateChain(data) {
  return request({
    url: '/sbtz/sbtz/bulkChain',
    method: 'post',
    data
  })
}

/**
 * 批量导入 CSV（后端解析）
 * formData: FormData，包含 file 字段
 */
export function importCsv(formData) {
  return request({
    url: '/sbtz/sbtz/importCsv',
    method: 'post',
    data: formData,
    headers: { 'Content-Type': 'multipart/form-data' }
  })
} 


export function createRoute(data) {
  return request({
    url: '/sbtz/sbtz/route/create',
    method: 'post',
    data
  })
}

export function createMachines(data) {
  return request({
    url: '/sbtz/sbtz/machine/create',
    method: 'post',
    data
  })
}


export function rehomeRoute(data) {
  return request({
    url: '/sbtz/sbtz/route/rehome',
    method: 'post',
    data
  })
} 

export function listSearchData(query) {
  return request({
    url: '/sbtz/sbtz/listSearchData',
    method: 'get',
    params: query
  })
} 

export function sbtzTreeSelect(params) {
  return request({
    url: '/sbtz/sbtz/treeSelect',
    method: 'get',
    params
  })
}


// 上传 Excel
export function importAssetExcel(formData) {
  // formData 里必须有 key = 'file'
  return request({
    url: '/sbtz/sbtz/excel',
    method: 'post',
    data: formData,                   // 直接传 FormData，axios 会自动带 multipart 边界
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}

// 下载导入模板（可选）
export function downloadAssetTemplate() {
  return request({
    url: '/sbtz/sbtz/template',
    method: 'get',
    responseType: 'blob'
  })
} 

// 检查设备类别是否已存在首次标记
export function checkBeTypeFirst(params) {
  return request({
    url: '/sbtz/sbtz/checkBeTypeFirst',
    method: 'get',
    params
  })
}
